Contents page

Rules for Tools/struct Edit


struct Edit
     struct Edit {
    struct Edit *next;          /* Next in list of edit windows. */
    struct Track *track;        /* Track that may own this. */
    struct RastPort *rp;
    struct Clip *clip;          /* Clip that we are editing. */
    struct Clip cut;            /* Cut clip. */
    struct Clip undo;           /* Undo clip. */
    struct Window *window;      /* This window. */
    struct Window *notewindow;  /* The note display window. */
    struct NewWindow *newwindow;
    struct NewWindow *newnotewindow;
    struct NoteEvent *displaynote;/* First event displayed. */
    long cursor;                /* Cursor for single step entry. */
    long listenstart;           /* Starting offset for listen. */
    long listenend;             /* Ending offset for listen. */
    struct NoteEvent *fillsequence;/* Temp list for filling notes. */
    struct NoteRef *boxlist;    /* For box operations. */
    struct Tool *edittool;
    struct ChordEvent *newchord;
    struct StringEvent *newlyric;
    struct KeyEvent *newkey;
    struct RhythmEvent *newrhythm;
    struct DynamicsEvent *newdynamics;
    struct TimeSigEvent *newtimesig;
    struct NoteEvent *selectnote;/* Note currently selected. */
    struct NoteEvent *lastselectnote;/* Note previously selected. */
    char title[20];
    short x,y;
    unsigned short width;       /* Width of display box. */
    unsigned short height;      /* Height of display box. */
    unsigned short leftedge;    /* Left edge of note display. */
    unsigned short rightedge;   /* Right edge of box, w coords.*/
    unsigned short topedge;     /* Top edge of box. */
    unsigned short bottomedge;  /* Bottom edge of box. */
    unsigned long leftstart;    /* Distance from window to start*/
                                   of seq. */
    long datawidth;             /* Width of entire sequence. */
    long listcount;             /* Length of list. */
    long listindent;            /* Distance in of index into list. */
    struct NoteEvent *listfirst;/* First event displayed in list. */
    struct NoteEvent *listlast; /* Last event displayed in list.  */
    long boxleft,boxright;
    unsigned short dataheight;  /* Height of entire sequence. */
    short boxtop, boxbottom;
    short lyricbase;
    short chordbase;
    short keybase;
    short rhythmbase;
    short dynamicsbase;
    short timesigbase;
    short tabbase;
    short notationbase;
    short staffbase;
    short pianobase;            /* Height from top to bottom of notes. */
    short velocitybase;         /* Same for velocity display. */
    short controlbase;          /* And the rest... */
    short pbendbase;
    short mtouchbase;
    short ptouchbase;
    short patchbase;
    short sysexbase;
    char lastpbend;
    char lastcontrol;
    char lastmtouch;
    char lastpatch;
    long pbendtime;
    long controltime;
    long mtouchtime;
    long patchtime;
    char inedit;                /* Currently open. */
    short selectdata;           /* Data associated with selected note. */
    char shiftkey;              /* Shift key is down. */
    enum emenu menukey;         /* Previously, a key to select a menu had
                                   been pushed */
    char selecttype;            /* Which display note selected in. */
    char lastselecttype;        /* Which display last note selected was in. */
    long basetime;              /* Base time for changing event time. */
    long inctime;               /* Increment or decrement value. */
    long listenpoint;           /* Start of listen region. */
    short itemheight;           /* Height to display list item. */
    short notelen;              /* Keep track of note length when drawing. */
    long refreshstart,refreshend;/* Where to start and finish
                                    notation refresh. */
    short toprange;
    short bottomrange;          /* Range for notating one staff. */
    short centerrange;          /* Range for notating one staff. */
    short trebletop;            /* Y position of top staff line. */
    short treblebottom;         /* Y position of bottom staff line. */
    short basstop;              /* Y position of top staff line. */
    short bassbottom;           /* Y position of bottom staff line. */
    short oldtopedge, oldbottomedge, oldleftedge, oldrightedge,
          oldnotationbase;
    short initialpos;
    short comparepos;

         /* Start of saved data */
    long editmode;              /* What mode the mouse editor is in. */
    long showbits;              /* Which items to show. */
    long modebits;              /* Preference flags. */
    long begin, end;            /* Region markers. */
    short windowleftedge, windowtopedge, windowwidth, windowheight;
    short listwindowleftedge, listwindowtopedge, listwindowheight;
    short notewindowleftedge, notewindowtopedge;
    short toolid;
    short shift;
    unsigned short topstart;    /* Distance from window to top of data. */
    short listshow;             /* Number of items visible. */
    unsigned char controlnum;   /* Control number of displayed cc. */
    char centernote;            /* Center note for staff. */
    char useclip;               /* Flag to use clipboard. */
    char listedit;              /* Flag to use list editor. */
    char inserttype;            /* Type of inserted note. */
    char insertalter;           /* Special flags (triplets, etc.) */
    short insertlength;         /* Resultimg length. */
    short insertduration;       /* Resulting duration. */
    char insertdtype;           /* Duration type. */
    char insertvtype;           /* Velocity type. */
    unsigned char insertvelocity;/* Resulting value. */
    short notatequant;          /* Notation quantization. */
    char notateres;             /* Notation quantization. */
    char notatekey;             /* Notation key. */
    char notatetrans;           /* Notation offset. */
    char transid;               /* Id of transposition. */
    short notatebits;           /* Notation preferences. */
    char transcenter;           /* Tranposed center note. */
    char lownote;               /* The lowest displayed note. */
    char highnote;              /* The highest displayed note. */
    short trbits;               /* Notation transcription options. */
    char tabstrings;            /* how many strings in tablature */
    char string[12];            /* up to 12 strings, value for each*/ string */
    char highfret;              /* Highest fret number */
    char ntbits;                /* Notation options. */
    unsigned short noteconvert[NT_LEN][NL_LEN][NR_LEN];
        /* represents: [Notetype][Length][Range]*/
         * i.e. [triplet][n8][low] = 155; [triplet][n8][high] = 160;
         */
    char tabposition;   /* the position to notate if position notation
                           is requested */
    short stringbits;   /* which strings are active to be notated upon */
    short tabresolution;
    short selectmask;   /* For selective Toolize */
    char selectlower;
    char selectupper; 
};